Conventional client-server computer systems provide coupling between one or more client computers and a server computer. In such systems, the server computer is provided having server based application programs and a server based storage area that can be used by the one or more client computers. A client computer can access the server based application programs, for example a word processor program, that resides upon the server computer. The client computer can save data, for example a word processor document, to the server based storage area, and can also retrieve the word processor document from the server based storage area.
The client computers coupled to the server can also contain client computer based application programs and a client computer based storage area local to each client computer. A client-server computer system can have both server based and client computers based application programs and storage areas. In general, application programs and storage areas that are used by more than one client computer are provided as server based application programs and server based storage areas. Conversely, application programs and a storage area that are used by one client computer are generally provided as client based application programs and a client based storage area in association with the one client computer.
Conventional client-server systems can be provided having the one or more client computers and the server coupled with a variety of communication links. When the client computers are in close proximity to the server, for example within a few feet or hundreds of feet, the communication links can be direct wire connections, or line-of-sight radio link connections. When the client computers are remote from the server, for example within many miles, the communication links can include telephone wires, cable TV (CATV) wires, Internet backbone, troposphere, and/or satellite links. There is no limitation as to the physical separation between any of the one or more client computers and the server of a client-server computer system when using a combination of the above links.
Conventional client-server computer systems can be provided having the client computers and the server coupled with a variety of electronic communication protocols. For example, TCP/IP is known to be a communication protocol that can send computer information over any of the connections mentioned above. Other protocols, for example Ethernet, can control the distribution of TCP/IP information around a local area network (LAN) of computers.
In one conventional embodiment, the client-server configuration is a single-server configuration in which a single server is connected to the one or more client computers in a star configuration. In a star configuration, the server corresponds to the center of the star and the one or more client computers correspond to the points of the star. In another conventional embodiment, a client computer can access a variety of servers upon manual selection by a client computer user. Each such access selection again provides a star configuration in which the newly selected server corresponds to the center of a new star. With a single-server configuration, it will be recognized that if the single server becomes congested, all of the one or more client computers connected to the single server will suffer slow operation.
Typical client-server systems provide no real time synchronization of data between the one or more client computers, i.e. no “collaboration” between client computers. In contrast, distributed collaboration systems have been provided that can synchronize real time data display and storage between one or more client computers. For example, collaboration systems are provided that can coordinate an interaction in real time between users of multiple client computers, also called a collaboration session, such that each client computer can display the same data and changes to the data that occur during the interaction and each client computer can remain synchronous with the other client computers.
Distributed collaboration systems have been provided by a variety of commercial companies. Manufacturers of software systems include WebEx from WebEx Communications Inc., San Jose, Calif., (www.webex.com), Centra, from Centra Software, Inc., Lexington, Mass., (www.centra.com), PlaceWare from PlaceWare, Inc., Mountain View, Calif., (www.placeware.com), and HelpMeeting from HelpMeeting LLC, Freehold, N.J., (www.helpmeeting.com). It should, however, be recognized that these collaboration systems are still fundamentally single-server systems having star configurations.
Collaboration systems, such as those listed above, have been provided having several servers to serve different collaboration sessions, but throughout a given collaboration session, only one server serves a client computer group. Thus, existing collaboration systems are provided having only the single-server configuration in a star configuration for a given collaboration session.
When a star configuration is used in a collaboration session, data throughput, both in processing speed and in communication link bandwidth, from a single server to all the client computers coupled thereto in the collaboration session, can deteriorate as the quantity of data to be shared becomes greater. In particular, both application software sharing and video broadcasting from a single server require substantial processing speed and communication link bandwidth.
It should be recognized that the client computers, with displays disposed thereupon, can include but are not limited to, desktop computers, laptop computers, personal digital assistants (PDAs), portable telephones, and pagers. Although some of these client computers are computing platforms having low processing speed, when used as client computers in a collaboration session they can depend upon the server for some processing functions. However, single-server architecture may not provide sufficient processing speed for computing platforms that depend upon the server for some processing functions, particularly when then server must service several clients simultaneously.
In one conventional embodiment, the communication links between the variety of computing platforms mentioned above and the server are wireless. Wireless communication links are known to have variable bandwidth, unpredictable data error rates including dropouts, and unpredictable ranges. In particular, in some applications, it may be desirable to provide mobile client computers and mobile servers. Exemplary mobile collaboration sessions include disaster relief collaboration session, for example data sharing during earthquake disaster relief, and military data sharing during military operations. In mobile applications such as these, client computers can be provided as PDAs having wireless communication links to one or more servers, and the one or more servers can also be mobile.
It would therefore be desirable to provide a collaboration system that has greater processing speed and greater communication link bandwidth than a single-server star configuration. It would be further desirable to provide a system that can tolerate variable bandwidth, unpredictable data error rates including dropouts, and unpredictable ranges of mobile client to server communication links yet maintain data integrity. It would be further desirable to provide a system that can tolerate faults in one or more elements of the system without data loss and without data delay.